﻿// Road Construction POJ - 3352.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
夏天快到了，这意味着夏天的施工时间也快到了！今年，负责管理热带岛屿天堂遥远岛道路的好心人要对岛上各个旅游景点之间的道路进行维修和升级。

这些道路本身也相当有趣。由于岛上奇特的风俗习惯，道路的布置从不在十字路口交汇，而是利用桥梁和隧道相互跨越或穿过。
这样，每条道路都在两个特定的旅游景点之间穿行，这样游客们就不会无可挽回地迷失方向。


遗憾的是，由于每条道路都需要进行维修和升级，当建筑公司对某条道路进行施工时，该道路的任何一个方向都无法使用。
如果两个旅游景点之间无法通行，即使建筑公司在任何特定时间只在一条道路上施工，也会造成问题。

因此，偏远岛屿的公路部门决定请你们提供咨询服务，帮助解决这个问题。根据决定，必须在各个景点之间修建新的道路，
这样，在最终配置中，如果有一条道路正在施工，仍然可以使用剩余的道路来往于两个景点之间。你的任务是求出所需新建道路的最少数量。

输入
第一行输入将由正整数 n 和 r 组成，中间用空格隔开，其中 3 ≤ n ≤ 1000 是岛上旅游景点的数量，2 ≤ r ≤ 1000 是道路的数量。
下面 r 行中的每一行都由两个整数 v 和 w 组成，中间用空格隔开，表示在标有 v 和 w 的景点之间有一条路。
此外，您可以放心，在当前配置中，您可以在任意两个旅游景点之间旅行。

输出
一行，由一个整数组成，它给出了我们需要添加的道路的最小数量。

Sample Input 1
10 12
1 2
1 3
1 4
2 5
2 6
5 6
3 7
3 8
7 8
4 9
4 10
9 10

Sample Input 2
3 3
1 2
2 3
1 3

Output for Sample Input 1
2

Output for Sample Input 2
0




*/
int main()
{
    std::cout << "Hello World!\n";
}
 